package com.free.ext.web.spring.filter;

import org.springframework.http.client.support.HttpRequestWrapper;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.util.Arrays;

/**
 * <p>
 * 功能概述:
 * </p>
 * <p>
 * 功能详述:
 * </p>
 */
public class XssFilterRequestWarpper extends HttpServletRequestWrapper {
    /*========================================================================*
     *                         Public Fields (公共属性)
     *========================================================================*/

    /*========================================================================*
     *                         Private Fields (私有属性)
     *========================================================================*/

    /*========================================================================*
     *                         Construct Methods (构造方法)
     *========================================================================*/
    public XssFilterRequestWarpper(HttpServletRequest request){
        super(request);
    }
    /*========================================================================*
     *                         Public Methods (公有方法)
     *========================================================================*/

    @Override
    public String getParameter(String name)
    {
        String value = super.getParameter(name);
        return XssCleanUtils.clean(value);
    }

    @Override
    public String[] getParameterValues(String name)
    {
        String[] values = super.getParameterValues(name);
        if(values == null){
            return values;
        }
        Arrays.asList(values).forEach(x->{
            XssCleanUtils.clean(x);
        });
        return values;
    }

    /*========================================================================*
     *                         Private Methods (私有方法)
     *========================================================================*/
}
